/*
 *
 * Copyright 2021,2023 NXP.
 *
 * NXP Confidential. This software is owned or controlled by NXP and may only be
 * used strictly in accordance with the applicable license terms. By expressly
 * accepting such terms or by downloading,installing, activating and/or otherwise
 * using the software, you are agreeing that you have read,and that you agree to
 * comply with and are bound by, such license terms. If you do not agree to be
 * bound by the applicable license terms, then you may not retain, install, activate
 * or otherwise use the software.
 *
 */

#ifndef DEBUG_LOG_SUPPORT_SR040_H
#define DEBUG_LOG_SUPPORT_SR040_H

/**
 *  @brief Log parameters which will be included in the log notification.
 */

/**  Log parameters which will be included in the log notification.
 *   config parameter and its corresponding bit value is as given below. it is a 4 byte value.
 *   RX Status and Error                 bit 0
 *   TX Status and Error                 bit 1
 *   CIR log                             bit 2
 *   UWB Session ID                      bit 3
 *   Block Index                         bit 4
 *   RX Timestamp                        bit 5
 *   TX Timestamp                        bit 6
 *   RX PSDU                             bit 7
 *   TX PSDU                             bit 8
 *   STS index                           bit 9
 *   RX First Path Info                  bit 10
 *   RX Carrier frequency offset         bit 11
 *   MAC decoding status                 bit 12
 *   Reason of MAC decoding failure      bit 13
 *   MAC frame compliance                bit 14
 *   RX MAC Header                       bit 15
 *   RX MAC Payload                      bit 16
 *   Scheduler status                    bit 17
 *   Scheduler info                      bit 18
 *   Default: 0x00000000
 */
typedef enum logParamConfig
{
    /*
     * Default: 0x00000000
     */
    LOG_PARAM_NONE = 0,
    /* RX Status and Error                bit 0*/
    RX_STATUS_AND_ERROR = (1 << 0),
    /*TX Status and Error                 bit 1*/
    TX_STATUS_AND_ERROR = (1 << 1),
    /*CIR log                             bit 2*/
    CIR_LOG = (1 << 2),
    /*UWB Session ID                      bit 3*/
    UWB_SESSION_ID = (1 << 3),
    /*Block Index                         bit 4*/
    BLOCK_INDEX = (1 << 4),
    /*RX Timestamp                        bit 5*/
    RX_TIMESTAMP = (1 << 5),
    /*TX Timestamp                        bit 6*/
    TX_TIMESTAMP = (1 << 6),
    /*RX PSDU                             bit 7*/
    RX_PSDU = (1 << 7),
    /*TX PSDU                             bit 8*/
    TX_PSDU = (1 << 8),
    /*STS index                           bit 9*/
    LOG_STS_INDEX = (1 << 9),
    /*RX First Path Info                  bit 10*/
    RX_FIRST_PATH_INFO = (1 << 10),
    /*RX Carrier frequency offset         bit 11*/
    RX_CARRIER_FREQUENCY_OFFSET = (1 << 11),
    /*MAC decoding status                 bit 12*/
    RX_MACSTATUS = (1 << 12),
    /*Reason of MAC decoding failure      bit 13*/
    MAC_DECODE_FAILURE_REASON = (1 << 13),
    /*MAC frame compliance                bit 14*/
    MAC_FRAME_COMPLIANCE = (1 << 14),
    /*RX MAC Header                       bit 15*/
    RX_MAC_HEADER = (1 << 15),
    /*RX MAC Payload                      bit 16*/
    RX_MAC_PAYLOAD = (1 << 16),
    /*Scheduler status                    bit 17*/
    SCHEDULER_STATUS = (1 << 17),
    /*Scheduler info                      bit 18*/
    SCHEDULER_INFO = (1 << 18),
    /* SET All*/
    SET_ALL_LOG_PARAM = 0x7FFFF,
} eLogParamConfig;

/**
 *  @brief Disabling/enabling debug logging can be configured.
 */
/**  Debug logging level , 1=Enable, 0=Disable [Default] */
typedef enum debugLogConfig
{
    /*
     * Default: 0x00
     */
    DEBUG_NONE = 0,
    /* Logging Level Error                bit 0*/
    LOGGING_LEVEL_ERROR = (1 << 0),
    /*Logging Level Warning               bit 1*/
    LOGGING_LEVEL_WARNING = (1 << 1),
    /*Logging Level Timestamp             bit 2*/
    LOGGING_LEVEL_TIME_STAMP = (1 << 2),
    /*Logging Level Sequence Number       bit 3*/
    LOGGING_LEVEL_SEQ_NUM = (1 << 3),
    /*Logging Level Info High             bit 4*/
    LOGGING_LEVEL_INFO_HIGH = (1 << 4),
    /*Logging Level Info                  bit 5*/
    LOGGING_LEVEL_INFO = (1 << 5),
    /*Logging Level Verbose               bit 6*/
    LOGGING_LEVEL_VERBOSE = (1 << 6),
    /*Set all bits*/
    SET_ALL_DEBUG = 0x7F
} eDebugLogConfig;

#endif // DEBUG_LOG_SUPPORT_SR040_H
